package com.anan;

import java.util.Arrays;

/**
 * @Author: Painter
 * @project_name: aircraft-war
 * @system_login: sunshine
 * @time: 2023/11/520:14
 */



public class random {

    // 返回 [a, b] 范围内的一个随机整数包括a和b
    public static int randint(int a, int b){
        return (int) ((Math.random() * (b-a+1)) + a);
    }

    // 返回 [a, b] 范围内的 c个随机整数数组
    public static int [] randints(int a , int b, int c){
        /**
         * 返回 [a, b] 范围内的 c个 随机数 数组，。
         *  a 随机数的起始数    b 随机数的结束数
         *  c 随机数个数
         */
        int[] numbers = new int[c];  // 创建一个数组长度为6，用于保存红球的数量
        for (int i = 0; i <numbers.length; i++) {  // for循环（等于遍历数组）为数组的每一位元素赋值
            // 死循环 获取1位随机数，然后将这位随机和数组的每一位数作比较，
            // 直到随机数与数组的每一位元素都不相等是终止循环
            while (true) {
                int val = (int) ((Math.random() * (b-a+1)) + a);
                boolean boll = true;   // 创建布尔值，用于是否将随机数存入数组
                for (int num :numbers) {   // 遍历数组（将随机数与数组中现有有效元素作比较是否相等）
                    if (num == val) {  // 判断随机数在数组中是否与有效元素重复
                        boll = false;    // 如果随机数与数组中的有效元素发生重合，修改布尔值，不存入数据
                        break;  //终止本次迭代变量为j的for循环
                    }
                }
                if (boll) {   // 如果boll为true
                    numbers[i] = val;  // 将随机数存入数组索引为i的位置
                    break;  // 终止while循环
                }
            }
        }
        Arrays.sort(numbers);
        return numbers;
    }

}
